package com.tools;

import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonBar;
import javafx.scene.control.ButtonType;
import javafx.stage.Stage;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Optional;

/**
 * @author Kilon
 * @date 2022/3/19
 * @apiNote
 *
 */
public class BaseUntil extends Application {

    public static boolean checkObjFieldIsNotNull(Object obj) {   // true 不为空  false 为空
        boolean flag = false;
        try {
            for (Field f : obj.getClass().getDeclaredFields()) {
                f.setAccessible(true);
                if (f.get(obj) == null || f.get(obj) == "") {
                } else {
                    flag = true;
                }
            }
        } catch (Exception e) {
            return false;
        }
        return flag;
    }

    //消息提示
    public static void message(String msg){
        message(2, msg);
    }
    /**
     *
     * @param i 提示类型 1 NONE,2 INFORMATION,3 WARNING,4 CONFIRMATION,5 ERROR
     * @param msg
     */
    public static void message(Integer i,String msg) {
        Alert.AlertType megType ;
        switch(i){
            case 1 :
                megType = Alert.AlertType.NONE;
                break; //可选
            case 2 :
                megType = Alert.AlertType.INFORMATION;
                break; //可选
            case 3 :
                megType = Alert.AlertType.WARNING;
                break; //可选
            case 4 :
                megType = Alert.AlertType.CONFIRMATION;
                break; //可选
            case 5 :
                megType = Alert.AlertType.ERROR;
                break; //可选
            default : //可选
                megType = Alert.AlertType.NONE;
        }
        Alert alert = new Alert(megType);
        alert.titleProperty().set("信息");
        alert.headerTextProperty().set("提示");
        alert.setContentText(msg);
        alert.showAndWait();
    }

    public static boolean checkMessage(String msg) {
        Alert alert = new Alert(Alert.AlertType.CONFIRMATION); // 创建一个确认对话框
        alert.setHeaderText("温馨提示"); // 设置对话框的头部文本
        // 设置对话框的内容文本
        alert.setContentText(msg);
        // 显示对话框，并等待按钮返回
        Optional<ButtonType> buttonType = alert.showAndWait();
        // 判断返回的按钮类型是确定还是取消，再据此分别进一步处理
        if (buttonType.get().getButtonData().equals(ButtonBar.ButtonData.OK_DONE)) { // 单击了确定按钮OK_DONE
            return true;
        } else { // 单击了取消按钮CANCEL_CLOSE
            return false;
        }
    }


    @Override
    public void start(Stage primaryStage) throws Exception {

    }
}
